package yao.config;

/**
 * 值对象
 * 
 * @author YaoMing
 */
public final class Value {

	private String value;

	Value(String value) {
		this.value = value;
	}

	/**
	 * 得到一个Character，如果name没有对应的值，将抛出NodeNotFoundException
	 * 
	 * @param name
	 * @return
	 */
	public Character characterValue() {
		if (value.length() >= 1)
			return value.charAt(0);
		else
			return '\0';
	}

	/**
	 * 得到一个Long，如果name没有对应的值，将抛出NodeNotFoundException
	 * 
	 * @param name
	 * @return
	 */
	public Long longValue() {
		return new Long(value);
	}

	/**
	 * 得到一个Double，如果name没有对应的值，将抛出NodeNotFoundException
	 * 
	 * @param name
	 * @param defaultValue
	 * @return
	 */
	public Double doubleValue() {
		return new Double(value);
	}

	/**
	 * 得到一个Float，如果name没有对应的值，将抛出NodeNotFoundException
	 * 
	 * @param name
	 * @return
	 */
	public Float floatValue() {
		return new Float(value);
	}

	/**
	 * 得到一个Integer，如果name没有对应的值，将抛出NodeNotFoundException
	 * 
	 * @param name
	 * @return
	 */
	public Integer integerValue() {
		return new Integer(value);
	}

	/**
	 * 得到一个Short，如果name没有对应的值，将抛出NodeNotFoundException
	 * 
	 * @param name
	 * @return
	 */
	public Short shortValue() {
		return new Short(value);
	}

	/**
	 * 得到一个Boolean，如果name没有对应的值，将抛出NodeNotFoundException
	 * 
	 * @param name
	 * @return
	 */
	public Boolean booleanValue() {
		return new Boolean(value);
	}

	/**
	 * 得到一个Byte，如果name没有对应的值，将抛出NodeNotFoundException
	 * 
	 * @param name
	 * @return
	 */
	public Byte byteValue() {
		return new Byte(value);
	}

	/**
	 * 字符串值
	 */
	public String toString() {
		return value;
	}
}
